#include"comm.h"
static int comm_get_shm(int shm_size,int flag)
{
	key_t shm_key=ftok(_PATH_,_PROJ_ID_);
	if(shm_key<0)
	{
		perror("ftok");
		return -1;
	}
	int shm_id=shmget(shm_key,shm_size,flag);
	if(shm_id<0)
	{
			perror("shmget");
	}
	return shm_id;
}

int creat_shm(int shm_size)
{
	umask(0);
	return comm_get_shm(shm_size,IPC_CREAT|IPC_EXCL|0666);
}
int get_shm()
{
	return comm_get_shm(1,IPC_CREAT);
}

void *at_shm(int shm_id)
{
	return shmat(shm_id,NULL,0);
}
int delete_shm(void *addr)
{
	return shmdt(addr);
}
int distroy_shm(int shm_id)
{
	return shmctl(shm_id,IPC_RMID,NULL);
}











